The Internet is quickly becoming the preferred data communications medium for a broad class of computer users ranging from private individuals to large multinational corporations. Such users now routinely employ the Internet to access information, distribute information, correspond electronically, and even conduct personal conferencing. An ever-growing number of individuals, organizations, and businesses have established a presence on the Internet through “Web pages” on the World Wide Web (WWW). One reason for the phenomenal success of the Internet and the WWW is the successful integration of textual, graphical, and audio data. Supporting dynamic real-time media, such as real-time video and audio, on the Internet facilitates the development of new applications like real-time visual communication, entertainment, and distance learning and training, while enhancing the capability of existing applications. Internet video delivery in particular has shown great commercial potential and, therefore, has encouraged a substantial number of commercial developments.
The primary device responsible for delivering video to Internet users is a streaming server. In operation, the streaming server utilizes available bandwidth to provide simultaneous data and video broadcasts to a plurality of clients. For a variety of reasons, bandwidth on the Internet has become both a critical resource and a key cost factor for Internet Service Providers (ISPs). This has led to a variety of efforts being undertaken to improve the capability to audit, monitor, and limit bandwidth usage.
Reliable auditing and monitoring of bandwidth usage is important in two types of web hostings offered by ISPs, i.e., “co-location” and “dedicated/shared-server” services. In co-location service, a customer owns a dedicated web server located at an ISPs facility and purchases Internet bandwidth from the ISP. The ISP buys bandwidth in bulk and resells it to each customer. In dedicated-server service, customers rent dedicated servers that are owned and maintained by the ISP. In shared-server service, customers rent disk space, and share CPU and ETHERNET bandwidth with other web site customers on the ISP's equipment. While this provides a low cost service for the customer, it frequently results in an overcrowding of the equipment and long delays or inaccessibility of the sites sharing the server. When the ISP has a clear picture of usage patterns, users can be relocated onto servers that do not clash with other users, or changed to dedicated-server service.
Regardless of the delivery method, accurate auditing and monitoring of the bandwidth usage by each web hosting customer is needed. ISPs without bandwidth usage tools may inaccurately charge customers for bandwidth usage based on average bandwidth usage or peak usage, and some ISPs may even resort to flat rate fees.
Further exacerbating the problem is the fact that the web hosting business is becoming increasingly competitive. Customers are demanding guaranteed service and accountability for the access bandwidth charges by their ISPs. The customers too would welcome the ability to monitor their own usage patterns in real time. ISPs need to differentiate their services and provide a guaranteed quality of service to ensure customer satisfaction. In addition, unlike hit-rate data provided by other software, bandwidth usage patterns give web site owners a different angle for gauging responses to changes in content on their sites.
From a strategic standpoint, real-time bandwidth monitoring is important for the ISPs to determine if sufficient bandwidth is being purchased, to plan the growth of the network, and to analyze unusual bandwidth patterns which may signify problems with the server or the ISP's equipment.
One technique for calculating the number of concurrent connections analyzes data records for each connection. Each data record includes a connect time and disconnect time for the connection. The technique calculates a concurrent connections count for each record. The technique, however, incorrectly assigns counts to some records that have the same connect time. For example, when there are no current connections and three connection records have the same connect time, the technique assigns a count of one to the first data record encountered, a count of two to the second data record encountered, and a count of three to the third data record encountered. These assignments are incorrect because all three data records should have a count of three.
Accordingly, there is need for a method and apparatus for accurately calculating concurrent connections.